이곳은 개발을 위한 베타 사이트 입니다.기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 버퍼 오버플로/스택 (문단 편집) == Return to libc == NX bit가 설정되어 있고 버퍼 오버플로를 사용하여 할 수 있는 방법 중 하나인 Return to libc 는 call stack에 있는 return address 와 여러 데이터를 변경하여 PC를 이미 실행권한을 가지고 있고 여러가지 C 에서 제공해주는 함수들이 정의가 되어있는 라이브러리(libc) 공간에 있는 코드로 가리키게끔 해서 공격자가 원하는 코드를 실행시킬 수 있는 공격 기법이다. 이 방법을 사용해 주로 부르는 함수는 다른 프로그램을 실행시킬 수 있는 함수들인 system, evev*(execl, execv, execle, execve, execlp, execvp) 함수들이다. 공격할때 payload 의 구조는 dummy(버퍼) + SFP(Stack Frame Pointer) + return address + next RET [+ arg1 [+ arg2 [...]]] + ... 의 구조로 되어있다. 예를 들면, system("/bin/sh")를 실행시키고 싶을 경우에는 dummy + SFP + &system + dummy address + &"/bin/sh"(&는 해당하는 주소) 식으로 구성을 해주면 된다. 이를 사용해서 RTL Chaining 를 하여 하나의 함수 뿐만 아니라 여러 함수를 차례차례 실행을 시켜나갈수 있고 더 응용해서 ROP (Returned Oriented Programming)를 할수가 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기